
"""
    目标：D:\\1.txt
    下载到：C:\\Users\\10572\\Desktop\\1.txt

    文件下载器服务端：
        1、导入模块
        2、创建socket
        3、绑定端口，设置监听，设置套接字由主动为被动
        4、接受客户端发送的文件名
        5、根据文件名读取文件内容
        6、把读取的内容发送给客户端（循环）
        7、关闭和当前客户端的连接
        8、关闭服务器
"""

import socket

tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

tcp_server.bind(("192.168.0.107", 8080))

tcp_server.listen(128)

new_tcp_server, ip_port = tcp_server.accept()
print("%s客户端已连接", str(ip_port))

file_name = new_tcp_server.recv(1024)
file_path = "D:\\"
# print(file_name.decode("utf-8"))

with open(file_path+file_name.decode("utf-8"), 'rb') as file:
    while True:
        file_data = file.read(1024)

        # 判断文件是否读取完毕
        if file_data:
            new_tcp_server.send(file_data)
        else:
            break

new_tcp_server.close()
tcp_server.close()
